package org.bonorsoft.modules.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.bonorsoft.modules.user.entity.MobileRole;
import org.bonorsoft.modules.user.vo.MobileRoleVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Set;

public interface IMobileRoleService extends IService<MobileRole> {
    /**
     * 校验角色是否允许操作
     *
     * @param role 角色信息
     */
    void checkRoleAllowed(MobileRole role);

    /**
     * 根据条件校验角色名称是否唯一
     *
     * @param role 角色信息
     * @param condition 条件
     * @return 结果
     */
    public String checkRoleUnique(String field, MobileRole role, String condition);

    /**
     * 修改保存角色信息
     *
     * @param role 角色信息
     * @param req
     * @return 结果
     */
    public int updateRole(MobileRole role, HttpServletRequest req);

    /**
     * 根据用户ID查询角色
     *
     * @param userid 用户ID
     * @return 权限列表
     */
    public Set<String> selectRoleKeys(String userid);

    /**
     * 查询未删除的用户
     * @param roleId
     * @return
     */
    MobileRole selectRoleById(Integer roleId);

    /**
     * 查看某用户的角色的数据权限
     * @return
     * @param userid
     */
    List<MobileRole> getRolesByUserId(String userid);

    /**
     * 修改数据权限信息
     *
     * @param role 角色信息
     * @param req
     * @return 结果
     */
    public int authDataScope(MobileRole role, HttpServletRequest req);

    public void deleteRole(List<Integer> labelIdList);

    /**
     * 根据用户ID查询角色
     *
     * @param userId 用户ID
     * @return 角色列表
     */
    public List<MobileRoleVo> selectRolesByUserId(String userId);
}
